Filename | (eval 1109)[/usr/share/perl5/Sub/Quote.pm:5] |
Statements | Executed 2465 statements in 2.86ms |
Eval Invoked At | /usr/share/perl5/Sub/Quote.pm line 5 |
Sibling evals | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
319 | 2 | 2 | 11.0ms | 13.0ms | new | DBIx::Class::Storage::BlockRunner::
1 | 1 | 1 | 82µs | 82µs | BEGIN@10.2966 | Method::Generate::Constructor::
1 | 1 | 1 | 18µs | 36µs | BEGIN@4.2965 | Sub::Quote::
1 | 1 | 1 | 7µs | 7µs | BEGIN@74 | DBIx::Class::Storage::BlockRunner::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | { | ||||
2 | my $_UNQUOTED = ${$_[1]->{"\$_UNQUOTED"}}; | ||||
3 | my $_QUOTED = ${$_[1]->{"\$_QUOTED"}}; | ||||
4 | 2 | 55µs | # spent 36µs (18+18) within Sub::Quote::BEGIN@4.2965 which was called:
# once (18µs+18µs) by Sub::Quote::_clean_eval at line 4 # spent 36µs making 1 call to Sub::Quote::BEGIN@4.2965
# spent 18µs making 1 call to warnings::unimport | ||
5 | # spent 13.0ms (11.0+1.91) within DBIx::Class::Storage::BlockRunner::new which was called 319 times, avg 41µs/call:
# 318 times (11.0ms+1.91ms) by DBIx::Class::Storage::DBI::dbh_do at line 855 of DBIx/Class/Storage/DBI.pm, avg 41µs/call
# once (31µs+1µs) by DBIx::Class::Storage::DBI::dbh_do at line 56 of Sub/Defer.pm | ||||
6 | $_QUOTED if 0; | ||||
7 | 85 | 16µs | $_UNQUOTED if 0; | ||
8 | # BEGIN quote_sub PRELUDE | ||||
9 | package Method::Generate::Constructor; | ||||
10 | # spent 82µs within Method::Generate::Constructor::BEGIN@10.2966 which was called:
# once (82µs+0s) by Sub::Quote::_clean_eval at line 15 | ||||
11 | $^H = "2018"; | ||||
12 | ${^WARNING_BITS} = "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"; | ||||
13 | %^H = ( | ||||
14 | ); | ||||
15 | 1 | 82µs | } # spent 82µs making 1 call to Method::Generate::Constructor::BEGIN@10.2966 | ||
16 | # END quote_sub PRELUDE | ||||
17 | 85 | 43µs | my $class = shift; | ||
18 | 85 | 24µs | $class = ref($class) if ref($class); | ||
19 | 85 | 48µs | if ($class ne "DBIx::Class::Storage::BlockRunner") { | ||
20 | if ($Moo::MAKERS{$class}) { | ||||
21 | if ($Moo::MAKERS{$class}{constructor}) { | ||||
22 | return $class->DBIx::Class::Storage::BlockRunner::SUPER::new(@_); | ||||
23 | } | ||||
24 | Moo->_constructor_maker_for($class); | ||||
25 | return $class->new(@_); | ||||
26 | } elsif ($INC{"Moose.pm"} and my $meta = Class::MOP::get_metaclass_by_name($class)) { | ||||
27 | return $meta->new_object( | ||||
28 | $class->can("BUILDARGS") ? $class->BUILDARGS(@_) | ||||
29 | : $class->Moo::Object::BUILDARGS(@_) | ||||
30 | ); | ||||
31 | } | ||||
32 | } | ||||
33 | 85 | 35µs | my $args; | ||
34 | 85 | 168µs | if ( scalar @_ == 1 ) { | ||
35 | unless ( defined $_[0] && ref $_[0] eq 'HASH' ) { | ||||
36 | die "Single parameters to new() must be a HASH ref" | ||||
37 | ." data => ". $_[0] ."\n"; | ||||
38 | } | ||||
39 | $args = { %{ $_[0] } }; | ||||
40 | } | ||||
41 | elsif ( @_ % 2 ) { | ||||
42 | die "The new() method for $class expects a hash reference or a" | ||||
43 | . " key/value list. You passed an odd number of arguments\n"; | ||||
44 | } | ||||
45 | else { | ||||
46 | 85 | 188µs | $args = {@_}; | ||
47 | } | ||||
48 | 85 | 224µs | if (my @missing = grep !exists $args->{$_}, qw(retry_handler storage wrap_txn)) { | ||
49 | die "Missing required arguments: ".join(', ', sort @missing); | ||||
50 | } | ||||
51 | 85 | 265µs | my $new = bless({}, $class);; | ||
52 | 85 | 117µs | $new->{"max_attempts"} = ( | ||
53 | exists $args->{"max_attempts"} | ||||
54 | ? $args->{"max_attempts"} | ||||
55 | : "20" | ||||
56 | ); | ||||
57 | 85 | 40µs | if (exists $args->{"retry_debug"}) { | ||
58 | $new->{"retry_debug"} = $args->{"retry_debug"}; | ||||
59 | } | ||||
60 | 85 | 74µs | if (exists $args->{"retry_handler"}) { | ||
61 | 85 | 23µs | do { | ||
62 | 85 | 200µs | local $Method::Generate::Accessor::CurrentAttribute = { | ||
63 | init_arg => "retry_handler", | ||||
64 | name => "retry_handler", | ||||
65 | step => "isa check", | ||||
66 | }; | ||||
67 | 85 | 15µs | my $_error; | ||
68 | { | ||||
69 | 170 | 57µs | my $_old_error = $@; | ||
70 | 85 | 86µs | if (!eval { | ||
71 | 85 | 20µs | $@ = $_old_error; | ||
72 | 170 | 138µs | do { local @_ = ($args->{"retry_handler"}); # BEGIN quote_sub PRELUDE | ||
73 | package DBIx::Class::Storage::BlockRunner; | ||||
74 | # spent 7µs within DBIx::Class::Storage::BlockRunner::BEGIN@74 which was called:
# once (7µs+0s) by Sub::Quote::_clean_eval at line 79 | ||||
75 | $^H = "133090"; | ||||
76 | ${^WARNING_BITS} = "UUUUUUUUUUUUUUUUU"; | ||||
77 | %^H = ( | ||||
78 | ); | ||||
79 | 1 | 7µs | } # spent 7µs making 1 call to DBIx::Class::Storage::BlockRunner::BEGIN@74 | ||
80 | # END quote_sub PRELUDE | ||||
81 | |||||
82 | 85 | 446µs | 318 | 361µs | (Scalar::Util::reftype($_[0])||'') eq 'CODE' # spent 361µs making 318 calls to Scalar::Util::reftype, avg 1µs/call |
83 | or DBIx::Class::Exception->throw('retry_handler must be a CODE reference') | ||||
84 | }; | ||||
85 | 85 | 46µs | 1; | ||
86 | }) { | ||||
87 | $_error = $@; | ||||
88 | if (!ref $_error) { | ||||
89 | $_error = "isa check for \"retry_handler\" failed: ".$_error; | ||||
90 | } | ||||
91 | } | ||||
92 | 85 | 38µs | $@ = $_old_error; | ||
93 | } | ||||
94 | 85 | 68µs | die $_error if $_error; | ||
95 | } | ||||
96 | ; | ||||
97 | 85 | 68µs | $new->{"retry_handler"} = $args->{"retry_handler"}; | ||
98 | } | ||||
99 | 85 | 84µs | if (exists $args->{"storage"}) { | ||
100 | $new->{"storage"} = $args->{"storage"}; | ||||
101 | } | ||||
102 | 85 | 54µs | if (exists $args->{"wrap_txn"}) { | ||
103 | $new->{"wrap_txn"} = $args->{"wrap_txn"}; | ||||
104 | } | ||||
105 | 85 | 278µs | return $new; | ||
106 | } | ||||
107 | $$_UNQUOTED = \&DBIx::Class::Storage::BlockRunner::new | ||||
108 | } | ||||
109 | 1; | ||||
110 | |||||
111 | ; |